{{>licenseInfo}}
{{#models}}
{{#model}}
{{#n4jsimports}}
import { {{{elementname}}} } from '{{modulename}}';
{{/n4jsimports}}

{{#description}}
/**
 * {{{.}}}
 */
{{/description}}
{{#isModel}}
export external public interface ~{{{classname}}} {{#parent}}extends {{{.}}} {{/parent}}{
{{#vars}}
{{#description}}

    /**
     * {{{.}}}
     */
{{/description}}
    public {{{name}}}{{^required}}?{{/required}}: {{{dataType}}};
{{/vars}}
}
{{/isModel}}
{{#isAnyType}}
export external public type {{{classname}}} = {{{dataType}}};
{{/isAnyType}}
{{#isEnum}}
{{#isString}}
@StringBased
{{/isString}}
{{#isNumber}}
@NumberBased
{{/isNumber}}
export external public enum {{{classname}}} {
    {{#allowableValues}}
    {{#enumVars}}
    {{{name}}}: {{{value}}}{{^-last}},{{/-last}}
    {{/enumVars}}
    {{/allowableValues}}
}
{{/isEnum}}
{{/model}}
{{/models}}